package br.com.conciliador.consulta.vo;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.JoinColumn;

import org.hibernate.annotations.Type;

import br.com.r2.util.tipodado.Data;
import br.com.r2.util.tipodado.InteiroLongo;
import br.com.r2.util.tipodado.Moeda;
import br.com.r2.util.tipodado.Texto;

@Embeddable
public class ExtratoPK implements Serializable
{

   /**
    * 
    */
   private static final long serialVersionUID = -1388266156668429191L;

   @Column(name = "DATALANCAMENTO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.DataUT")
   private Data dataLancamento;

   @Column(name = "LOJA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroLongoUT")
   private InteiroLongo loja;

   @Column(name = "NOMELOJA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.TextoUT")
   private Texto nomeLoja;

   @Column(name = "BANDEIRA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroLongoUT")
   private InteiroLongo bandeira;

   @Column(name = "NOMEBANDEIRA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.TextoUT")
   private Texto nomeBandeira;

   @Column(name = "PRODUTO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroLongoUT")
   private InteiroLongo produto;

   @Column(name = "NOMEPRODUTO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.TextoUT")
   private Texto nomeProduto;

   @Column(name = "CONTA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroLongoUT")
   private InteiroLongo conta;
   
   @JoinColumn(name = "VALORLANCAMENTO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.MoedaUT")
   private Moeda valorLancamento;

   @JoinColumn(name = "HISTORICOLANCAMENTO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.TextoUT")
   private Texto historicoLancamento;

   
//   @ManyToOne(fetch = FetchType.LAZY)
//   @JoinColumn(name = "CONTA")
//   @Cascade(CascadeType.PERSIST)
//   private ContaBancoVo contaVo;

   @JoinColumn(name = "BANCOAGENCIACONTA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.TextoUT")
   private Texto bancoAgenciaConta;

   public InteiroLongo getConta()
   {
      return conta;
   }

   public void setConta(InteiroLongo conta)
   {
      this.conta = conta;
   }

   public Data getDataLancamento()
   {
      return dataLancamento;
   }

   public void setDataLancamento(Data dataLancamento)
   {
      this.dataLancamento = dataLancamento;
   }

   public InteiroLongo getLoja()
   {
      return loja;
   }

   public void setLoja(InteiroLongo loja)
   {
      this.loja = loja;
   }

   public Texto getNomeLoja()
   {
      return nomeLoja;
   }

   public void setNomeLoja(Texto nomeLoja)
   {
      this.nomeLoja = nomeLoja;
   }

   public InteiroLongo getBandeira()
   {
      return bandeira;
   }

   public void setBandeira(InteiroLongo bandeira)
   {
      this.bandeira = bandeira;
   }

   public Texto getNomeBandeira()
   {
      return nomeBandeira;
   }

   public void setNomeBandeira(Texto nomeBandeira)
   {
      this.nomeBandeira = nomeBandeira;
   }

   public InteiroLongo getProduto()
   {
      return produto;
   }

   public void setProduto(InteiroLongo produto)
   {
      this.produto = produto;
   }

   public Texto getNomeProduto()
   {
      return nomeProduto;
   }

   public void setNomeProduto(Texto nomeProduto)
   {
      this.nomeProduto = nomeProduto;
   }

   public Texto getBancoAgenciaConta()
   {
      return bancoAgenciaConta;
   }

   public void setBancoAgenciaConta(Texto bancoAgenciaConta)
   {
      this.bancoAgenciaConta = bancoAgenciaConta;
   }
//
//   public ContaBancoVo getContaVo()
//   {
//      return contaVo;
//   }
//
//   public void setContaVo(ContaBancoVo contaVo)
//   {
//      this.contaVo = contaVo;
//   }

	public Moeda getValorLancamento() {
		return valorLancamento;
	}

	public void setValorLancamento(Moeda valorLancamento) {
		this.valorLancamento = valorLancamento;
	}

	public Texto getHistoricoLancamento() {
		return historicoLancamento;
	}

	public void setHistoricoLancamento(Texto historicoLancamento) {
		this.historicoLancamento = historicoLancamento;
	}

}
